package com.uplift.mobile.message.service;

import com.uplift.common.base.ServiceReslut;
import com.uplift.mobile.message.model.MessageModel;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

public interface IMessageService {
	public List<Map<String, Object>> queryMessage(MessageModel messageModel);

	@Transactional
	public ServiceReslut addMessage(MessageModel messageModel);

	@Transactional
	public ServiceReslut updateMessage(MessageModel messageModel);

	@Transactional
	public ServiceReslut deleteMessage(MessageModel messageModel);

	/**
	 * 发送消息
	 * @param messageModel
	 * @return
	 */
	@Transactional
	public ServiceReslut sendMessage(MessageModel messageModel);

	/**
	 * 撤回消息
	 * @param messageModel
	 * @return
	 */
	@Transactional
	public ServiceReslut rebackMessage(MessageModel messageModel);

	/**
	 * 确认消息
	 * @param messageModel
	 * @return
	 */
	@Transactional
	public ServiceReslut affirmMessage(MessageModel messageModel);

	/**
	 * 获取单个消息
	 * @param messageModel
	 * @return
	 */
	Map<String, Object> getOneMessage(MessageModel messageModel);

	/**
	 * 设置消息为已读状态
	 * @param messageModel
	 */
	void readMessage(MessageModel messageModel);

	/**
	 * 设置为重点消息
	 * @param ids
	 * @return
	 */
	@Transactional
	public ServiceReslut setImportance(String ids, String state);

	/**
	 * 设置锁定状态
	 * @param ids
	 * @return
	 */
	@Transactional
	public ServiceReslut setLock(String ids, String state);

	/**
	 * 批量删除
	 * @param ids
	 * @return
	 */
	@Transactional
	public ServiceReslut deleteMult(String ids);
}
